As is known, one-dimensional bar-codes are extremely widely used for graphic coding of small amounts of information. The bar-codes can easily be printed directly on a generic object or on a label to be applied on the object itself and are organized so that the information carried thereby can be automatically acquired by optical apparatuses that are fast and simple to use. In particular, the information is encoded through a succession, according to a pre-determined direction, of bars of various thickness, separated by spaces, which are also of various thickness. The major limit of traditional one-dimensional bar-codes lies in the limited number of characters that can be encoded, up to a few tens of alphanumeric characters, which entails a low density of information that can be obtained. Their use is not therefore advantageous when it is necessary to encode an even modest amount of data.
In order to overcome the above limit, the use of two-dimensional graphic codes has been proposed, which can be of a stacked or of a matrix type. Two-dimensional stacked codes are organized with successions of bars separated by spaces in a first direction, basically as one-dimensional codes. In two-dimensional stacked codes, however, various successions are present, arranged alongside one another in a second direction perpendicular to the first direction.
Two-dimensional matrix codes use, instead, sets of characters that are juxtaposed within a field, usually quadrangular, and are defined by dot matrices. Each dot can assume selectively one between two admissible brightness levels (typically, white and black).
Two-dimensional codes then contain service information (delimiters, reference signs, dimensional indicators, etc.), corresponding to the dimensions and to the orientation of the field containing the useful information.
In any case, two-dimensional codes are able to carry only an amount of information that is rather limited, also because they are markedly tied down to a pre-determined geometry. These codes can typically carry approximately two thousand alphanumeric characters, which are reduced to little less than one thousand if they are used for carrying bytes.
The density of information that can be obtained with two-dimensional codes is certainly higher than the density of one-dimensional bar-codes. However, the correlations between contiguous dots in terms of brightness, deriving from the technological characteristics of current printing and acquisition means, limit the maximum information encoding density to a not yet satisfactory level. In fact, the actual impression of a single dot on the printing medium is not sufficiently repeatable with currently available computer printing processes (ink jet or bubble ink jet, heat transfer of ink). In practice, in order to prevent systematic reading errors, it is necessary to use a printing resolution far lower than the theoretically available one, at the expense of density and total dimensions of printed two-dimensional codes. Given very high nominal densities, the maximum density that can realistically be obtained using a high-quality laser printer does not today exceed in practice 1600 bytes per square inch (as against a maximum density of more than 11000 bytes per square inch that can theoretically be obtained operating with a resolution of 300 dpi).
Alternatively, it would be necessary to use printing and acquisition means that are so costly as to render use of two-dimensional codes unavailable in the majority of possible applications. Consequently, in actual fact, current two-dimensional codes are not suitable for coding large amounts of information.